home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / BASIC / 2789.ZIP / HELPTEST.BAS < prev    next >
BASIC Source File  |  1991-09-28  |  7KB  |  177 lines

  1. DECLARE SUB Monocheck ()
  2.  
  3. '/TEST PROGRAM FOR POPHELP/
  4. '/program expects to find help text file HELPTEST.HLP in the default
  5. ' drive/directory. If it can't find it you will get a message pointing
  6. ' this out, in which case either copy the file to the default directory
  7. ' or find helpath$ below and change it's assignment accordingly/
  8.  
  9.  
  10. DEFINT A-Z            '/default for this program/
  11. DIM spectrum(12)      '/spectrum() holds colour info for all the utilities.
  12.                       ' Pophelp uses spectrum(8..11)/
  13.  
  14. '/find out if we are to run this in mono or colour and set the colours
  15. ' accordingly/
  16.  
  17.   CALL Monocheck      '/not a quick library subroutine/
  18.  
  19. '=======================================================================
  20. '/code between double lines only needed for this test program/
  21.  
  22. '/draw test screen background/
  23.  
  24.   LOCATE 1, 1
  25.   CALL clrbox(spectrum(0), 80, 24)      '/see manual QUICKREF.DOC
  26.                                         ' for details on clrbox/
  27. '/draw prompt line (screen row 25)/
  28.  
  29.   COLOR 0, 7
  30.   LOCATE 25, 1: PRINT "   Pophelp  "; CHR$(179); "    F1-Call Pophelp";
  31.   PRINT "    Esc-Dismiss Pophelp    Alt+X-Exit Program   ";
  32.  
  33. '======================================================================
  34.  
  35.   null$ = CHR$(0)   '/need this to recognise Function and Alt keys/
  36.  
  37. '****************************************
  38. 'Pophelp needs the following preparations
  39. '****************************************
  40.  
  41.   code$ = "04095417"       '/Pophelp will pop up screen row 04 column 09
  42.                            ' with a page area (including border) 54 columns
  43.                            ' wide and 17 rows deep. Don't forget to include
  44.                            ' leading zeros where necessary. code$ must
  45.                            ' always contain 8 digits/
  46.  
  47.   context$ = "X"              '/initialise to call Help Index. context$ can
  48.                               ' contain any uppercase letter from A - Z, but
  49.                               ' X,Y & Z mean special things to Pophelp. See
  50.                               ' Manual for details. If you specify a letter
  51.                               ' that doesn't have an associated help text
  52.                               ' page Pophelp will display the Index/
  53.  
  54.   helpath$ = "HELPTEST.HLP"    '/help file for this program. You will
  55.                                ' have to change this if HELPTEST.HLP
  56.                                ' is not in default drive/directory/
  57.  
  58.   ON ERROR GOTO Hlperror      '/since HelpInit opens the help text file and
  59.                               ' reads the index information plus calculates
  60.                               ' the file position offset for each of your
  61.                               ' help pages this is the best place to trap
  62.                               ' any help file access problems/
  63.  
  64.   CALL HelpInit(helpath$)     '/get index info from help disk file
  65.                               ' HELPTEST.HLP. CALL Helpinit again anywhere
  66.                               ' in your program if you want Pophelp to use
  67.                               ' a different help file (you can have as
  68.                               ' many as you like)/
  69.  
  70.   ON ERROR GOTO 0             '/disable error trap/
  71.  
  72.   CALL Popcode(code$, spectrum())   '/pass screen location, page size
  73.                                     ' and colours info to Pophelp routines.
  74.                                     ' CALL Popcode anywhere in your program
  75.                                     ' to change colours, size or position/
  76.   sh = 1    '/turn on shadowing.
  77.             ' sh = 0 turns it off/
  78.  
  79.  
  80. '    **********************
  81. '    now we are ready to go
  82. '    **********************
  83.  
  84.   DO
  85.     DO
  86.       sel$ = INKEY$
  87.     LOOP WHILE sel$ = ""            '/wait for keypress/
  88.  
  89.     SELECT CASE sel$
  90.  
  91.       CASE null$ + CHR$(59)         '/F1 key/
  92.       CALL Pophelp(context$, sh)    '/open Pophelp. context$ tells Pophelp
  93.                                     ' which page from the help file (in this
  94.                                     ' case the Index, as we have already
  95.                                     ' assigned an "X" to context$) to
  96.                                     ' display when it pops up. Assigning "Y"
  97.                                     ' or "Z" to context$ also conveys special
  98.                                     ' instructions to Pophelp. See the manual
  99.                                     ' for details. sh controls the shadowing
  100.                                     ' effect/
  101.  
  102.       CASE null$ + CHR$(45)         '/Alt+X keys/
  103.       CLS
  104.       EXIT DO                       'terminate program/
  105.  
  106.     END SELECT
  107.   LOOP
  108.   SYSTEM
  109.  
  110. '/Error trapping routines/
  111.  
  112. Hlperror:
  113.  
  114. '/probably subroutine HelpInit was unable to find HELPTEST.HLP, so
  115. ' we'll issue a box with a message in it (see BOXTEST.BAS for
  116. ' details on Drawbox)/
  117.    
  118.     CALL Drawbox(1, 1, 13, 44, 30, 8, 0, sh, spectrum())
  119.     LOCATE 14, 46: PRINT "Unable to find Help file";
  120.     LOCATE 15, 46: PRINT "HELPTEST.HLP.  This file";
  121.     LOCATE 16, 46: PRINT "must be in the default";
  122.     LOCATE 17, 46: PRINT "drive/directory for this";
  123.     LOCATE 18, 46: PRINT "program to run.";
  124.     LOCATE 19, 46: PRINT "Press any key to continue";
  125.  
  126.     DO: LOOP WHILE INKEY$ = ""
  127.     CALL Zapbox(1, 13, 44, sh)      '/dismiss the box/
  128.  
  129. END
  130.  
  131. SUB Monocheck STATIC
  132. SHARED spectrum()
  133.  
  134.   COLOR 7, 0
  135.   CLS
  136.   LOCATE 2, 3
  137.   PRINT "Press <C> for Colour"
  138.   LOCATE 3, 3
  139.   PRINT "Press <M> for Monochrome"
  140.  
  141.   DO
  142.     sel$ = INKEY$
  143.     IF UCASE$(sel$) = "M" THEN        '/set for monochrome/
  144.       spectrum(0) = 0
  145.       spectrum(6) = 7
  146.       spectrum(7) = 0
  147.       spectrum(8) = 0
  148.       spectrum(9) = 7
  149.       spectrum(10) = 0
  150.       spectrum(11) = 15
  151.       EXIT DO
  152.     ELSEIF UCASE$(sel$) = "C" THEN    '/set for colour/
  153.  
  154. '/we're not using any of the Menus so we can use spectrum(0...5)
  155. ' for other purposes/
  156.   
  157.       spectrum(0) = 2         '/screen background/
  158.   
  159. '/spectrum(6) and spectrum(7) are reserved for Drawbox/
  160.   
  161.       spectrum(6) = 14        '/Drawbox Foreground/border/
  162.       spectrum(7) = 4         '/Drawbox Backgound/
  163.  
  164. '/spectrum(8...11) are reserved for Pophelp/
  165.  
  166.       spectrum(8) = 11        '/Pophelp page text/
  167.       spectrum(9) = 1         '/Pophelp background/
  168.       spectrum(10) = 12       '/Pophelp border/
  169.       spectrum(11) = 14       '/Pophelp border text/
  170.      
  171.       EXIT DO
  172.     END IF
  173.   LOOP
  174.  
  175. END SUB
  176.  
  177.